home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip 1996 April
/
CHIP 1996 aprilis (CD06).zip
/
CHIP_CD06.ISO
/
hypertxt.arj
/
92
/
ALAPOK1.CD
< prev
next >
Wrap
Text File
|
1995-09-17
|
19KB
|
366 lines
@VA számítógép felépítése, mûködése@N
Ahhoz, hogy számítógépünket igazán eredményesen,
sikeresen használhassuk, kell némi ismeret a géprôl,
felépítésérôl, a benne zajló folyamatokról. Autót is lehet
(egészen jól) vezetni úgy, hogy az ember nem képzett
autószerelô, de magabiztosabban, tudatosabban autózik az,
aki tisztában van a gépkocsi felépítésével, mûködésével; aki
tudja mire képes a kocsija; aki tudja (sejti) melyik zörej
rendellenes; aki apróbb hibákat esetleg maga is meg tud
javítani.
Nagyon kedves, és (számunkra) nagyon tanulságos levelet
kapott@K Tippek kezdôknek @Nrovatunk vezetôje, Bánhegyesi
Zoltán. A levelet terjedelmi okokból kissé rövidítve
mutatjuk be:
@VTisztelt Bánhegyesi Zoltán!
@VAz a cikksorozat, amelyet elkezdett, nagyon aktuális,
@Vmert nagyon igaz, hogy az árak csökkenésével ""a szûk
@Vszakmai elitet a laikusok serege váltja fel.". Én már 54
@Véves vagyok, de most kapott el a számítógépes szenvedély.
@VMinden igaz, amit a cikkében leírt. Már egy éve veszem a
@V""CHIP"-et, hogy minél többet megtudjak a gépekrôl, a
@Vszámítástechnikáról (végül is azért, hogy pont azt a gépet
@Vés perifériát vegyem meg, amelyre szükségem van). Egy-két
@Vkezdôknek írt tankönyvet is megvettem.
@VA ""CHIP"-ben a teszteket, árakat olvasom, és mindent
@V(hirdetéseket), ami egy laikust érdekelhet, mert ""a kezdô
@Vfelhasználó megpróbál magán segíteni. Tanul. Tanul
@Vönerôbôl..." És rájön arra, hogy az adatkezelés alapjait
@Vbizony meg kell tanulni [...] ha már van számítógépe [...]
@VNekem még nincs számítógépem, eddig az ár miatt sem
@Vengedhettem meg magamnak. Csak készülök a vételre, és
@Vszeretném tudni használni. Célom: PC/AT 286-os vétel.
@VÉn elsôsorban sakkjátékhoz szeretném használni gépemet,
@Vde minden másra is... Arra kérem, tekintettel arra, hogy
@Vcikke a kezdô számítógépesekhez szól (pontosabban a hobbi
@Vszámítógépesekhez, akiknek nincs lehetôségük sehol tanulni),
@Vtérjen ki a leggyakorlatiasabb tudnivalókra is, nevezetesen
@Vaz alábbiakra:
@V1. Kaphatók-e olyan oktató floppyk (PC/AT 286), amelyek
@Vbevezetnek a számítógépes tudásba. Melyek ezek, és
@Vmit tanítanak.
@V2. Mely könyveket tartja célszerûnek beszerezni egy
@Vkezdô számítógépesnek ahhoz, hogy gépét üzemeltetni
@Vtudja, és ennél is többet tudjon... A sok könyv
@Vközül nehéz a megfelelôt kiválasztani.
@V[...] Megvásároltam Bartha Attila 1991 "Norton" címû
@Vkönyvét, amelynek alcímei: Backup, Commander 3.0, Editor,
@VGuide, Utilities 4.0, 4.5. Kérdésem: mit csinálok akkor, ha
@Vezt megtanulom. (Kérem, ne mosolyogjon, én teljesen tudatlan
@Vvagyok.)
@V[...] Végül, megtudok-e majd venni minden programot,
@Vmely nekem tetszik. Hol? [...] Egyáltalán, a sakkot is
@Vfigyelembe véve, mit és milyen programot (nyelvet?) tanuljak
@Vmindjárt a gépen. Hogy hidalom át az angol és magyar nyelv
@Vközti szakadékot, mert csak magyarul tudok.
@V[...] Szívélyes üdvözlettel: Veres Endre (7623 Pécs,
@VMezôszél utca 4.)@N
@KA levél kulcsmondata alighanem ez: ""Kérem, ne
@Kmosolyogjon, én teljesen tudatlan vagyok."@N Kedves Veres ùr!
Kevés az olyan ôszinte ember (vagy inkább ritkán vagyunk
ilyen ôszinték mi, emberek), aki nyíltan beismeri, hogy egy
szakterületen teljesen járatlan, s nemhogy a kezdô lépéseket
nem tette még meg, de egyelôre még azon töpreng, hogyan
tudna felállni?! Ezzel mindannyian így vagyunk idônként, ki
ebben, ki abban. Többek közt ez teszi érdekessé az életet --
új dolgokkal ismerkedhetünk meg, izgalmas ""magánkalandokba"
bocsátkozhatunk a számítógép monitora elôtt, fúrógéppel,
ecsettel vagy fôzôkanállal a kezünkben, és így tovább.
Sokfelôl hallottunk már olyan megjegyzést, kérést, hogy
a@K Tippek kezdôknek @Nrovatnál még egyszerûbb, még alapfokúbb
segítségre is szüksége lenne sok olvasónknak. Ez a levél
adta meg a végsô lökést, ebben a számban elindítjuk a@K
Segítség nagyon kezdôknek @Nsorozatot. A legjobb bevezetô
könyvek és a legjobb segítô-oktató sorozat sem pótolhatja a
számítógéppel eltöltött sok-sok óra élményeit és
tapasztalatait. Érdemes minden ötletet, lehetôséget
kipróbálni a gépen, és a felmerülô problémákra (például a
gép által kiírt, többnyire angol nyelvû üzenetek,
segédlet-szövegek megértésére) összpontosítani. A módszeres,
alapos bevezetôk és a kézikönyvek is inkább az ilyen jellegû
ismerkedéshez adnak segítséget, röviden: könyvekbôl,
újságcikkekbôl, oktató floppykról még senki nem tanulta meg
e gépek kezelését és célszerû használatát. Persze azért
reméljük, hogy a ""nagyon kezdôknek" szóló sorozatunk
sokaknak megkönnyíti a kezdôlépéseket...@N
A számítógép mûködtetéséhez szükséges praktikus,
alapvetô tudás megszerzéséhez sajátos utat fogunk bejárni.
Lépésrôl-lépésre alkotunk meg egy modellt -- ha úgy tetszik,
egy játékot --, s játék közben megismerkedünk a szükséges
fogalmakkal.
(Itt szeretnék köszönetet mondani Szlávi Péternek, aki
egy Frey Tamás Vándorgyûlésen tartott elôadásában
ismertetett meg az alábbi modellel. Tanítványaim azóta is e
keretjátékon keresztül ismerkednek meg a számítástechnika
alapfogalmaival.)
@VA mese@N
A helyszín egy szoba, amelynek két ablaka van. A szoba
közepén egy asztal áll, ezek körül ülnek szereplôink. A fal
mellett egy fiókosszekrény látható (megszámozott apró
fiókokkal), rajta egy metronóm ketyeg.
A fôszereplô a Kis Organizátor (továbbiakban KO). Nagyon
érdekesek a képességei: nagyon gyors, szolgálatkész, ámde
kissé buta. A kapott feladatokat nagyon pontosan, precízen
hajtja végre, de egyszerre csak egyet (nem bír többet
megjegyezni), sôt az eredmények megjegyzésére is képtelen.
Ezért noteszeket használ, mindent ezekbe jegyez fel.
Segítôi (a Mûveletek család tagjai) is hozzá hasonlók:
mindegyikük egy-egy alapmûvelet specialistája, igen rövid
ésszel, tehát az eredményeket ôk is KO noteszeinek egyikébe
jegyzik fel.
A két ablakot használjuk a munkatársunkkal, KO-val való
kapcsolattartásra: az elsô ablakon mi mutatjuk meg a
feladatot, a másik ablakot KO használja az eredmények
bemutatására.
Egy dolgot kell még eldöntenünk: hogyan közöljük KO-val
a feladatokat (tekintettel szerény értelmi képességeire és
gyorsaságára). Az egyik lehetôség, hogy a szellemi
kapacitásához igazított lépéseket egyenként tudatjuk vele:
ekkor elôfordulhat (lévén igen gyors), hogy tétlenségre
kényszerítjük (mi nem vagyunk igazán gyorsak). A másik
módszer az, hogy az egész szükséges lépéssort egyszerre
közöljük KO-val: ekkor viszont valahogyan raktároznia kell
ezeket a lépéseket. Erre pont alkalmas a fiókosszekrény!
Minden fiókba egy lépés kerül, s csak azt kell megjegyeznie,
hogy melyik fióknál tart. Erre a célra használja KO a 0.
noteszt.
A puding próbája, ha megeszik: modellünk helyességét egy
egyszerû feladat megoldásával ellenôrizhetjük. Számoltassuk
ki kis csapatunkkal egy téglalap területét és kerületét. A
feladatot elemi lépésekre kell bontanunk KO számára:
@V0.@N Mutassuk meg az 1. adatot (KO ezt felírja az 1.
noteszbe)
@V1.@N Az 1. noteszbôl tegye az adatot a 45. fiókba
@V2.@N Kapja meg a 2. adatot (notesz!)
@V3.@N Tegye ezt a 46. fiókba
@V4.@N Másolja ki a 45. fiók adatát az 1. noteszbe
@V5.@N Másolja ki a 46. fiók adatát a 2. noteszbe
@V6.@N Szoroztassa össze az 1. és 2. notesz tartalmát (az
eredményt mindig az 1. noteszbe írja az illetékes!)
@V7.@N Az 1. notesz tartalmát tegye be a 47. fiókba
@V8.@N Másolja le a 45. fiók tartalmát az 1. noteszbe
@V9.@N Adassa össze az 1. és 2. notesz tartalmát
@V10.@N Az 1. notesz tartalma kerüljön be a 48. fiókba
@V11.@N A 48. fiók tartalmát másolja a 2. noteszbe
@V12.@N Adassa össze az 1. és 2. notesz tartalmát
@V13.@N Az 1. noteszt mutassa meg a 2. ablakon
@V14.@N Másolja a 47. fiók tartalmát az 1. noteszbe
@V15.@N Mutassa meg az 1. noteszt
@V16.@N Ålljon meg
A gond a következô: nem egészen egyértelmûen, ámde
bôbeszédûen fogalmaztuk meg a lépéseket (a beszélt nyelv már
csak ilyen), ebbôl problémák származhatnak. Jobban
alkalmazkodunk KO adottságaihoz, ha az elvégzendô
mûveleteket, teendôket számokkal jelöljük. Ållapodjunk meg a
következôkben:
Olvass be, s tedd az 1. noteszbe = 1
Tedd be fiókba = 2
Másold ki fiókból = 3
Szorozd össze = 4
Add össze = 5
Mutasd meg = 6
Ållj = 7
Ezek után (mivel megállapodásunk szerint KO a
végrehajtandó utasításokat a szekrényben tárolja), az egyes
fiókok tartalma a következôképpen néz ki (baloldalt a fiókok
sorszáma látható):
0.: 1 (Olvass be adatot, írd az 1. noteszbe)
1.: 2 (Tedd be...)
2.: 1 (az 1. notesz adatát...)
3.: 45 (a 45. fiókba)
4.: 1 (Megint beolvasás az 1. noteszbe)
5.: 2 (Tedd be...)
6.: 1 (az 1. notesz adatát...)
7.: 46 (a 46. fiókba )
8.: 3 (Másold ki...)
9.: 45 (a 45. fiók tartalmát...)
10.: 1 (az 1. noteszbe)
11.: 3 (Másold ki...)
12.: 46 (a 46. fiók tartalmát...)
13.: 2 (a 2. noteszbe)
14.: 4 (Szorozd össze...)
15.: 1 (az 1. noteszbeli számot...)
16.: 2 (a 2. noteszben lévôvel)
17.: 2 (Tedd be...)
18.: 1 (az 1. noteszbeli értéket...)
19.: 47 (a 47. fiókba)
20.: 3 (Másold ki...)
21.: 45 (a 45. fiók adatát...)
22.: 1 (az 1. noteszbe)
23.: 5 (Add össze...)
24.: 1 (az 1. noteszbeli számot...)
25.: 2 (a 2. noteszben lévôvel)
26.: 2 (Tedd be...)
27.: 1 (az 1. notesz tartalmát...)
28.: 48 (a 48. fiókba)
29.: 3 (Másold ki...)
30.: 48 (a 48. fiók adatát...)
31.: 2 (a 2. noteszbe)
32.: 5 (Add össze...)
33.: 1 (az 1. noteszbeli számot...)
34.: 2 (a 2. noteszben lévôvel)
35.: 6 (Mutasd meg...)
36.: 1 (az 1. notesz tartalmát)
37.: 3 (Másold ki...)
38.: 47 (a 47. fiók tartalmát...)
39.: 1 (az 1. noteszbe)
40.: 6 (Mutasd meg...)
41.: 1 (az 1. notesz tartalmát)
42.: 7 (Ållj)
Ha KO-nak az ablakon 5-öt illetve 6-ot mutatunk (a
téglalap két oldalaként), akkor még a következôket
láthatnánk a fiókokban:
45.: 5
46.: 6
47.: 30
48.: 11
Az eddigiekben megalkottuk egy Neumann-elvû számítógép
modelljét, sôt megírtuk rá elsô programunkat. A Neumann-elvû
gép fô részei:
1. Központi vezérlô egység (Central Processing Unit,
CPU), amelynek további alkotóelemei:
-- a vezérlôegység (Control Unit, CU) -- a mi Kis
Organizátorunk
-- az aritmetikai/logikai egység (Arithmetic and Logic
Unit, ALU)
-- a Mûvelet család tagjai, a jól ismert, és speciális
matematikai és logikai mûveletek elvégzésére
-- regiszterek -- KO noteszei, adatok átmeneti
tárolására
A processzor (a bennünket érdeklô esetben
mikroprocesszor, ami egyetlen ""morzsa" -- chip) jellemzôje
a mûveleti szóhosszúság és a sebesség. A szóhosszúság azt
fejezi ki, hogy a CPU mekkora számokkal képes mûveleteket
végezni. Ezt bitekben -- a kettes számrendszerbeli
helyiértékek számában -- fejezzük ki, így beszélünk 8, 16,
32 bites processzorokról. A CPU sebessége a késôbb említendô
órajel-frekvencia, amit hertzben (Hz) illetve megahertzben
(MHz) mérhetünk. Az általunk tárgyalt, használt gépek
esetében ez az adat 4 - 50 MHz.
2. Operatív memória (tár, memory) -- a fiókos szekrény.
A processzor által közvetlenül elérhetô, általában
félvezetôkbôl felépített tár. Jellemzôje az igen kis elérési
idô, körülbelül 10-1000 ns. Két részbôl áll: az
írható-olvasható memóriából (Random Access Memory -- RAM;
tetszôleges hozzáférésû tár), és a csak olvasható memóriából
(Read Only Memory -- ROM). A tár talán legfontosabb adata a
mérete, amit bájtokban (byte) mérünk (1 bájt = 8 bit). Ez
így túl kicsi mérték lenne, ezért a gyakorlatban a Kbyte
(kilobájt) illetve a Mbyte (megabájt) használatos.
(Vigyázat: a számítástechnikában a ""K"-val jelölt ""kilo"
szócska nem 1000-et, hanem 1024-et jelent, lévén itt ez a
kerek szám, mivel 2 tizedik hatványa 1024! Ugyanígy az ""M"
elôtag jelentése 1024x1024 = 1|048|576, de a kiejtése
""mega"). A bennünket érdeklô tartomány 256 Kbyte-tól 4
Mbyte-ig terjed.
3. Elsôdleges bemeneti/kimeneti egységek (Input/Output,
I/O) -- a szoba két ablaka játszotta a billentyûzet
(elsôdleges bemeneti egység) (klaviatura, keyboard) és a
monitor (elsôdleges kimeneti egység) szerepét. Gépünk
egységei között a kapcsolatot egy meglehetôsen bonyolult
vezetékhálózat tartja fenn, amelyet busznak vagy sínnek
neveznek.
A Neumann-elvû számítógép alapvetô jellegzetessége, hogy
a program és az adatok (mint láttuk) ugyanabban a tárban
helyezkednek el, kettes számrendszerbeli számok formájában.
Tehát a szekrény (memória) tartalma igazából így néz ki,
ahol az utasítások, illetve az adatok címe alatt a fiók
sorszámát értjük:
0.: 00000001
1.: 00000010
2.: 00000001
3.: 00101101
4.: 00000001
stb.
A tárban elhelyezkedô utasításokat a gép sorban egymás
után megvizsgálja, s a vezérlôegység révén végrehajtja
azokat. A következô utasítás helyét az úgynevezett
programszámláló (0. notesz) mutatja meg.
Az adatok változókat is tartalmazhatnak. Egy dologról
nem esett még szó: a metronóm funkciójáról. Szereplôink
eltérô sebességgel dolgoznak; sejthetô, hogy egy összeadás
kevesebb idôt igényel, mint egy osztás. KO tudja, hogy
melyik mûvelet hány metronóm-ütésig tart, tevékenységét
ehhez, az úgynevezett órajel-generátorhoz igazítja.
Programunk gépi kódú program, mert a gép által
közvetlenül értelmezhetô nyelven készült. Érthetô módon
fogalmazódott meg az igény még a számítástechnika
hôskorában, hogy NE így kelljen programozni. Ki tudja fejben
tartani, hogy melyik szám melyik mûveletet jelenti; hogy
melyik adatot melyik memóriacímre helyeztük el; jó helyre
tesszük-e az adatokat, nem ér-e odáig a program stb. A
probléma elsô megoldását az assembly nyelv(ek) kifejlesztése
jelentette. Ez a jelrendszer lehetôvé teszi, hogy a gépi
kódú programokat könnyebben olvasható formában lehessen
leírni. A programozó emlékeztetô kódokat (mnemonikokat) ír,
a címek helyett szimbólumokat alkalmaz(hat). Fenti
programunkat így írhatnánk át egy kitalált assembly nyelvre:
OLVAS
TESZ 1,A
OLVAS
TESZ 1,B
MASOL A,1
MASOL B,2
SZOROZ 1,2
TESZ 1,T
MASOL A,1
ADD 1,2
SZOROZ 1,$2 (Itt változtatás történt, 2-vel szorzunk)
TESZ 1,K
KIIR T
KIIR K
VÉGE
Hááát...!? Valamivel jobb, de még mindig nem az igazi.
Nem a saját módunkon kell gondolkoznunk, hanem nagyon a gép
szintjén. Sokkal szebb lenne, ha programunkat valahogy így
írhatnánk le:
BE: A,B
TER=A*B
KER=2*(A+B)
KI: TER, KER
Ezért alkották meg az úgynevezett magasszintû nyelveket
(ALGOL, FORTRAN, BASIC, Pascal stb.), amelyek már sokkal
inkább emberközeliek. Megjelenésük elôfeltétele volt a
számítástechnika elterjedésének, tömegessé válásának. De ez
egyben egy új problémát is jelent: hogyan érti meg Kis
Organizátorunk (a CPU) az olyan utasításokat, hogy TESZ,
SZOROZ, KI, BE stb. Kell egy olyan program a tárba
(szekrénybe), amely ezeket az utasításokat átalakítja a CPU
által érthetô, feldolgozható gépi kódra. Tehát az utasítások
(programok) végrehajtásának folyamata így alakul:
A gép mielôtt végrehajtaná az utasítást, szintaktikailag
(formailag) ellenôrzi azt; azaz megnézi, hogy az utasítás
benne van-e az utasítástárban, illetve helyesen
alkalmaztuk-e. Ezután kezdi csak el végrehajtani. (Ekkor
válik a program tartalma, szemantikája érvényessé.) A
végrehajtás kétféleképp történhet:
1. Értelmezô, azaz interpreter módban. Az interpreter az
aktuális sort (utasítást) szintaktikailag (a formai
elôírások szempontjából) leellenôrzi és rögtön végre is
hajtja. îgy mûködnek az egyszerûbb személyi számítógépek
BASIC interpreterei (például a Commodore 64-eken). Leginkább
a szinkrontolmács munkájához lehetne hasonlítani ezt a
mûködést, aki mindent az elhangzás pillanatában fordít, s ha
egy mondat háromszor hangzik el, akkor háromszor fordítja
le.
2. Fordító, azaz compiler módban. A fordítóprogram az
egész forrásprogramot végigellenôrzi, a tevékenységsort
lefordítja gépi kódra és az így létrejött tárgyprogramot már
a CPU is végre tudja hajtani, nem kell hozzá interpreter.
(Az elôbbi analógiánál maradva, a compiler egy könyv
fordítójához hasonlítható). Az interpreter által futtatott
program általában jóval lassabban mûködik, mint a
lefordított program, de azzal, hogy soronként ellenôriz és
hajt végre, úgynevezett interaktív üzemmód jön létre,
amelyben sokkal könnyebb a program fejlesztése, javítása.
@KBánhegyesi Zoltán@N